Tổng quan Mã hóa khối

Quá trình mã hóa khối bao gồm 2 thuật toán: mã hóa - ký hiệu E và giải mã - ký hiệu E-1. Cả hai thuật toán đều tác động lên một khối đầu vào n bít sử dụng một khóa k bít để cho ra một khối đầu ra n bít. Đối với bất kỳ khóa nào, giải mã là hàm ngược của mã hóa, nghĩa là:

E K − 1 ( E K ( M ) ) = M {\displaystyle E_{K}^{-1}(E_{K}(M))=M}

trong đó M là khối thông tin và K là khóa bất kỳ.

Với mỗi khóa K, EK là một hoán vị (song ánh) của khối đầu vào. Mỗi khóa sẽ xác định một hoán vị trong tổng số 2 n ! {\displaystyle 2^{n}!} khả năng.

Độ dài của khối thông tin, ký hiệu là n, thông thường là cố định ở 64 hoặc 128 bít. Một số thuật toán có độ dài khối thay đổi nhưng không phổ biến. Tính đến trước những năm giữa của thập kỷ 1990 thì độ dài 64 bít thường được sử dụng. Từ đó trở về sau thì khối 128 bít được sử dụng rộng rãi hơn. Trong các chế độ mã hóa khối thì người ta thường phải bổ sung thêm một số bít cho văn bản (tiếng Anh: padding) để văn bản chứa số nguyên lần các khối. Mỗi chế độ mã hóa có đặc tính khác nhau về lan truyền lỗi (lỗi mã hóa trong khối này ảnh hưởng tới khối khác), khả năng truy xuất ngẫu nhiên và khả năng chống lại các kiểu tấn công khác nhau. Độ dài thông thường của khóa, k, là 40, 56, 64, 80, 128, 192 và 256 bít. Hiện tại (năm 2006) thì 80 bít là độ dài tối thiểu của khóa để có thể chống lại tấn công kiểu duyệt toàn bộ.

Mã hóa khối gồm nhiều quá trình lặp lại

Hầu hết các thuật toán mã hóa khối sử dụng lặp đi lặp lại các hàm đơn giản. Phương pháp này còn được gọi là mã hóa khối lặp (xem thêm product cipher). Mỗi chu kỳ lặp được gọi là một vòng (tiếng Anh: round) và thông thường các thuật toán có từ 4 tới 32 vòng.

Rất nhiều thuật toán mã hóa khối có tính chất của mạng Feistel, hay tổng quát hơn là hệ thống thế và hoán vị. Các thành phần sử dụng trong thuật toán là các hàm toán học, các hàm lô gíc (đặc biệt là hàm XOR), hộp thế (S-box) và các phương pháp hoán vị.